﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LM.Negocio.Objetos;
using LM.InterfacesFabricas.DTOs;
using LM.Repositorios.Interfaces;

namespace LM.Repositorios.Conversores
{
    public class ConversorDeTelefone
    {
        public Telefone Converta(DtoTelefone dtoTelefone)
        {
            var telefone = new Telefone();

            telefone.Codigo = dtoTelefone.Codigo;
            telefone.Ddd = dtoTelefone.Ddd;
            telefone.Numero = dtoTelefone.Numero;
            telefone.TipoDeTelefone = dtoTelefone.TipoDeTelefone;

            return telefone;
        }

        public DtoTelefone Converta(Telefone telefone)
        {
            var dtoTelefone = new DtoTelefone();

            dtoTelefone.Codigo = telefone.Codigo;
            dtoTelefone.Ddd = telefone.Ddd;
            dtoTelefone.Numero = telefone.Numero;
            dtoTelefone.TipoDeTelefone = telefone.TipoDeTelefone;

            return dtoTelefone;
        }

        public Telefone ConvertaParaObjetoPersistido(DtoTelefone dtoTelefone)
        {
            var telefonePersistido = FabricaDeRepositorios.Crie<IRepositorioDeTelefone>().Consulte(dtoTelefone.Codigo);

            var telefoneConvertido = Converta(dtoTelefone);
            telefoneConvertido.Id = telefonePersistido.Id;

            return telefoneConvertido;
        }
    }
}
